package com.jcake.services.client;

import java.util.Map;

public class Invocation {

	private String endpoint;
	private String action;
	private String version;
	private Account account;
	private String signatureVersion;
	private Map<String, String> parameters;
	private ResultTransformer resultTransformer;

	public Invocation(String endpoint, String action, String version, Account account, String signatureVersion, Map<String, String> parameters, ResultTransformer resultTransformer) {
		this.endpoint = endpoint;
		this.action = action;
		this.version = version;
		this.account = account;
		this.signatureVersion = signatureVersion;
		this.parameters = parameters;
		this.resultTransformer = resultTransformer;
	}

	public Invocation(String endpoint, String action, String version, Map<String, String> parameters, ResultTransformer resultTransformer) {
		this.endpoint = endpoint;
		this.action = action;
		this.version = version;
		this.parameters = parameters;
		this.resultTransformer = resultTransformer;
	}

	public Invocation(String endpoint, String action, String version, ResultTransformer resultTransformer) {
		this.endpoint = endpoint;
		this.action = action;
		this.version = version;
		this.resultTransformer = resultTransformer;
	}

	
	public Invocation() {
	}

	public String getEndpoint() {
		return endpoint;
	}

	public String getAction() {
		return action;
	}

	public String getVersion() {
		return version;
	}

	public Account getAccount() {
		return account;
	}

	public Map<String, String> getParameters() {
		return parameters;
	}

	public ResultTransformer getResultTransformer() {
		return resultTransformer;
	}

	public String getSignatureVersion() {
		return signatureVersion;
	}

	/**
	 * 
	 * @return
	 * @throws HttpProtocolException
	 */
	public Object invoke() throws HttpProtocolException {
		return null;
	}
}
